home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 1996 September
/
CHIP 1996 szeptember (CD07).zip
/
CHIP_CD07.ISO
/
sac
/
pack
/
lha266.exe
/
LHATEC.DOC
< prev
next >
Wrap
Text File
|
1994-12-03
|
5KB
|
155 lines
üª âAâïâSâèâYâÇé╠ë≡Éα
æSæ╠é╠ê│Åké╠ù¼éΩé═Å]ùêé╞ô»é╢üBé╡é╜é¬é┴é─üAôWèJâAâïâSâèâYâÇé╔
ò╧ìXé═û│éóüBé╜é╛üAĽÅæâTâCâYé¬ -lh6- é┼é═ 32K bytes é▄é┼üA-lh7-
é┼é═ 64K bytes é▄é┼é╔æ╬ë₧é┼é½éΘî`Ä«é╞é╚é┴é╜é╠é┼üAé▒é╠é╜é▀é╠ÅC
É│é═òKùvüB
ìíë±é╠âAâïâSâèâYâÇé╠ò╧ìXé═üAgzip é┼ÄgéφéΩé─éóéΘ hash é╞ Éⁿî`
âèâXâgé≡Ägé┴é╜îƒì⌡é≡ì╠ùpé╡é╜é▒é╞é╔éáéΘüB
I. èεû{ôIé╚âAâïâSâèâYâÇ
,ü⌐ü\ü\ü\ü\ü\ü\ü\ü\ü\ü\ü\ü\ü\ü\ü\ü\ü\ü\üE
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F ü¬
hash özù± -- -- -- 07 -- -- -- -- -- -- -- -- -- -- -- -- üb
'ü\ü\ü\ü¿, üb
01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 üb
prev özù± -- 00 -- -- -- -- 02 -- -- -- -- -- -- -- -- -- üb
^ü⌐ü\ü\ü\ü\ü\ü\' üb
üb üb hash Æl = 0003 ü¿üE
ü½ ü½ _________
text özù± X A B C D E A B C E F A B C D F
~~~~~~~~~ ~~~~~~~~~ ü¬
pos (î╗ì▌é╠â|âCâôâ^)
A. ò╢ÄÜù±é╠îƒì⌡
1. î╗ì▌é╠â|âCâôâ^ê╩Æu(pos)é⌐éτÄné▄éΘò╢ÄÜù±é╠ɵô¬ 3 bytes é≡
Ägé┴é─ hash Æl(hval)é≡ïüé▀éΘ(Åπé╠ùßé┼é═ 0x0003 é╞é╖éΘ)üB
2. hval é┼ hash özù±é≡ì⌡ê°é╡(hash[hval])üAîƒì⌡ò╢ÄÜù±é╠ê╩Æué≡
ïüé▀éΘ(scan_pos)üBé▒é╠ò╢ÄÜù±é╞î╗ì▌ê╩Æué╠ò╢ÄÜù±é≡öΣèré╖éΘüB
3. scan_pos é┼ prev özù±é≡ì⌡ê°é╡üAé┬é¼é╠îƒì⌡ò╢ÄÜù±é╠ê╩Æué≡ïü
é▀éΘ(scan_pos = prev[scan_pos])üBÅπé╞ô»ùlé╔ò╢ÄÜù±é╠öΣèré≡ìs
é╚éóüAêΩÆvÆ╖é¬éµéΦÆ╖é»éΩé╬üAé╗é╠êΩÆvÆ╖é≡ïLë»é╖éΘüB
prev[scan_pos] é¬ë╜éαÄwé╡é─éóé╚éóé╞é½é═é╗é▒é┼ÅIéφéΦüBé▄é╜üA
pos é╞ scan_pos é╠ïùùúé¬Ä½Åæé╠âTâCâYé≡ëzéªé╜éτîƒì⌡é≡ÅIù╣é╖éΘüB
B. ò╢ÄÜù±é╠ôoÿ^
1. î╗ì▌é╠â|âCâôâ^ê╩Æu(pos)é⌐éτÄné▄éΘò╢ÄÜù±é╠ɵô¬ 3 bytes é≡
Ägé┴é─ hash Æl(hval)é≡ïüé▀éΘüB
2. é┬é¼é╠æπôⁿé≡ìsé╚é┴é─âèâXâgé╔ôoÿ^é╖éΘüB
prev[pos] = hash[hval]
hash[hval] = pos
C. ò╢ÄÜù±é╠ôoÿ^é╠ìφÅ£
ÆPÅâé╚Éⁿî`âèâXâgì\æóé╠é╜é▀üAî├éóâmü[âhé┘é╟âèâXâgé╠ûûÅ╜é╔ê╩Æu
é╖éΘé▒é╞é╔é╚éΘüBé▒é╠é╜é▀üAîƒì⌡é≡æ┼é┐É╪éΘé╛é»é┼î┬ò╩é╔ò╢ÄÜù±é╠
ôoÿ^é≡ìφÅ£é╖éΘòKùvé¬û│éóüBĽÅæé¬û₧öté╞é╚éΦüAâeâLâXâgé╠ê┌ô«üEÉV
é╡éóâeâLâXâgé╠ô╟é▌ì₧é▌üEâ|âCâôâ^özù±é╠ìXÉVé≡ìsé╚éñÄ₧ô_é┼üAĽ
Åæé╠âTâCâYê╚Åπî├éóâ|âCâôâ^é≡ NIL(ë╜éαÄwé╡é─éóé╚éóÅ≤æ╘) é╔êΩèç
é╡é─ò╧ìXé╖éΘüB
II. û{û@é╠ùÿô_üEîçô_
1. ùÿô_
ì\æóé¬ÆPÅâé╚é╠é┼üAâüâéâèü[Å┴ö∩ù╩é¬Å¡é╚é¡é─ì╧é▐üBé╡é╜é¬é┴é─Ľ
Åæé╠âTâCâYé≡æσé½é¡ÄµéΘé▒é╞é¬é┼é½éΘ(DOS é╠âèâAâïâéü[âhé┼éα 32K
âoâCâgé╠ĽÅæé¬ÄgéªéΘ)üB
æOÅqé╡é╜éµéñé╔üAò╢ÄÜù±é╠ôoÿ^é¬è╚ÆPé┼ìφÅ£é¬òsùvé╚é╜é▀üAÆ╩Åφé═
ìéæ¼üB(ùßèOéáéΦüBÅ┌é╡é¡é═îçô_é╠ìÇé┼Åqé╫éΘüB)
2. îçô_
ɵô¬é╠ÉöâoâCâgé╔ô»é╢ò╢ÄÜù±é¬é¡éΦò╘é╡Åoé─é¡éΘéµéñé╚âtâ@âCâïé┼
é═(âfâoâbâKùpé╠Åεò±é╚é╟)üAô»é╢ hash Ælé⌐éτÄné▄éΘâèâXâgé╔æ╜Éö
é╠ò╢ÄÜù±é¬ôoÿ^é│éΩéΘîïë╩é╞é╚éΦüAîƒì⌡é¬ö±Åφé╔Æxé¡é╚éΘüB
III. îçô_é≡ìÄò₧é╖éΘé╜é▀é╠ëⁿù╟
û{âAâïâSâèâYâÇé≡ì╠ùpé╖éΘé╔éáé╜éΦüAé┬é¼é╠ò√û@é╔éµéΦîçô_é≡éáéΘ
Æ÷ôxìÄò₧é┼é½é╜üB
(1) îƒì⌡é╡éµéñé╞é╖éΘò╢ÄÜù±é╠ hash Ælé╠âèâXâgé╔êΩÆΦÉöê╚Åπé╠âG
âôâgâèü[é¬éáéΘÅΩìçé╔é═üAâGâôâgâèü[Éöé╠Å¡é╚éó hash Ælé╠âèâXâgé¬
î⌐é┬é⌐éΘé▄é┼ hash Ælé╠îvÄZê╩Æué≡îπéδé╔é╕éτé╡é─éóé¡(é╕éτé╡é╜âo
âCâgÉöé≡ offset é╞é╖éΘ)üBé╜é╛é╡ (offset + 3) é¬ì┼æσöΣèrÆ╖
(MAXMATCH = 256) é≡ëzéªé╚éóö═ê═üB
(2) (1) é┼âGâôâgâèü[Éöé╠Å¡é╚éó hash Ælé╠âèâXâgé¬î⌐é┬é⌐éτé╚éó
ÅΩìçé╔é═î│é╠ hash Ælé┼îƒì⌡é≡ìsé╚éñüB
(2) é╠ÅΩìçüAé▒é╠ò╢ÄÜù±é═Ägùpòpôxé╠ìééó hash Ælé≡Ä¥é┬ 3 âoâCâg
ò╢ÄÜù±é╛é»é⌐éτì\ɼé│éΩé─éóéΘüBé╡é╜é¬é┴é─Å¡é╚éóîƒì⌡é┼è«æSêΩÆv
é╖éΘò╢ÄÜù±é¬î⌐é┬é⌐éΘë┬ö\ɽé¬ìééóé╞ìléªéτéΩéΘüBÆ╩Åφé▒é╠âPü[âX
é╔êΩö╘æ╜é¡ôûé─é═é▄éΘé╠é═üAô»é╢ò╢ÄÜé¬ÿAæ▒é╡é─ MAXMATCH âoâCâg
ê╚Åπò└é±é┼éóéΘÅΩìçé┼éáéΘüB
ï⌠æRê┘é╚éΘò╢ÄÜù±é¬ô»é╢ hash Ælé≡Ä¥é┬é▒é╞é═éαé┐éδé±éáéΘé╠é╛é¬üA
é▒éΩé≡î⌐ôªé╡é╜é▒é╞é╔éµéΘê│Åkî°ùªé╠Æßë║é═ï═é⌐é┼éáéΘé╞è·æ╥é│éΩ
éΘüB
(3) (1) é┼âGâôâgâèü[Éöé╠Å¡é╚éó hash Ælé╠âèâXâgé¬î⌐é┬é⌐é┴é╜ÅΩ
ìçé╔é═üAé▒é╠âèâXâgé≡é╜é╟é┴é─ (offset + 3) âoâCâgê╚ÅπêΩÆvé╖éΘ
ò╢ÄÜù±é≡îƒì⌡é╖éΘüBéαé┐éδé±ò╢ÄÜù±é╠öΣèré═ offset âoâCâgé╛é»æO
é⌐éτÄné▄éΘò╢ÄÜù±é≡æ╬Å█é╞é╖éΘüB
(4) (3) é┼ (offset + 3) âoâCâgê╚ÅπêΩÆvé╖éΘò╢ÄÜù±é¬î⌐é┬é⌐éτé╚
éóÅΩìçé╔é═üAì┼æσöΣèrÆ╖ (max) é≡ (offset + 2) é╔ɺî└é╡üAî│é╠
hash Ælé╠âèâXâgé≡é╜é╟é┴é─Æ╩Åφé╠îƒì⌡é≡é╖éΘüB
é▒é╠ÅΩìçüAéáé▄éΦÆ╖éóêΩÆvò╢ÄÜù±é═î⌐é┬é⌐éτé╚éóé╠é┼üAîƒì⌡é≡ôrÆå
é┼æ┼é┐É╪é┴é─éαé╗éΩé┘é╟é╠î°ùªÆßë║é═ïNé½é╚éóé╞è·æ╥é│éΩéΘüB
--------------------------------
ê╚ÅπéµéΦüAÆ╖éóâèâXâgé¬ì∞éτéΩé╜ÅΩìçé┼éαé╗é╠æSé─é≡îƒì⌡é╖éΘòKùv
é¬éáé▄éΦû│é¡é╚éΦüAêΩÆΦé╠é╞é▒éδé┼îƒì⌡é≡æ┼é┐É╪éΘé▒é╞é¬é┼é½éΘüB
ê│Åkî°ùªéαé╗éΩÆ÷æ╣é╚éφéΩéΘé▒é╞é═û│éóéαé╠é╞ÄvéφéΩéΘüB
üª LHA é╠ĵéΦê╡éªéΘèiö[âtâ@âCâïÉöé╠î└èE
1. ê│Åkîné╠âRâ}âôâhé╠ÅΩìç (f âRâ}âôâhé≡Å£é¡)
êΩôxé╔é▄é╞é▀é─ìXÉVüEÆ╟ë┴é┼é½éΘâtâ@âCâïÉöé═ DOS é╠âüâCâôâüâéâè
é╠æσé½é│é╔éµéΦɺî└é≡Ä≤é»éΘüBé▒éΩé═ìXÉVüEÆ╟ë┴é╖éΘâtâ@âCâïé╠î≤
òΓé╠êΩùùé≡ò█Ä¥é╡é─é¿é¡òKùvé¬éáéΘé╜é▀é┼éáéΘüBLHA é═ EMS, XMS
é╚é╟é╠ègÆúâüâéâèé≡æSé¡Ägùpé╡é─éóé╚éóé╠é┼üAÅâÉêé╔âüâCâôâüâéâè
é╠æσé½é│é╔ì╢ëEé│éΩéΘé▒é╞é╔ù»ê╙é╡é─Æ╕é½é╜éóüB
ÅπïLé╠ɺî└é≡Ä≤é»é╚éóî└éΦüAë╜ôxé╔éαò¬é»é─âtâ@âCâïé≡Æ╟ë┴é╖éΘé╚
éτé╬üAêΩé┬é╠Åæî╔é╔èiö[é┼é½éΘâtâ@âCâïÉöé╠ɺî└é═æSé¡û│éóé═é╕üB
2. ôWèJîné╠âRâ}âôâhé╠ÅΩìç (f âRâ}âôâhé≡è▄é▐)
ÅφÄ»ôIé╚ö═ê═ôαé┼æSé¡Éºî└é═û│éóüB